home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
G-Games
/
(c)ge.d64
/
soutrains.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
4KB
|
134 lines
100 DIMA$(12),P%(18),T%(8,3):CM=54272
110 V1=54296:W1=54276:A1=54277:H1=54273:L=54272:POKE53281,0:POKE53280,5
150 I=RND(-TI):GOSUB9000
160 F=0:M=1:U=1:X=160:Y=81:Z=1024
200 D$=""
210 A$(0)=" [223][223][157][157][157][223][146] [223][157][157][157][223][223][146] "
220 A$(1)="[223][146] *[157][157][157][146][223][223][146] "
230 A$(2)="[223][223][157][157][146] [223][157][157]*[146] "
240 A$(3)="[169][146][169][157][157][169] [157][157] *"
250 A$(4)="[169][146][169] [157][157][157][169] *"
260 A$(5)="":A$(7)=""
270 A$(6)=" *[146] [157][157][157]***[146][157][157][157] *[146] "
280 A$(8)=" [223][223][157][157][157]*[146] [223]"
290 A$(9)=" *[157][157][223][146] [157][157][223][223]"
300 A$(10)="*[146] [157][157] [169][157][157][169][146][169]"
310 A$(11)="*[146] [169][157][157][157][146] [169][146][169]"
320 A$(12)="[169][146][169] [157][157][157][169] [169][157][157][157][146] [169][146][169]"
330 Z$="":FORI=1TO39:Z$=Z$+" "
340 NEXT:Z$=Z$+""
350 IFV<.2THENA$(2)=" [146] [157][157] *[157][157] [146] "
360 IFV<.4THENA$(8)=" *[146] [157][157][157] "
400 FORI=1TO8:T%(I,1)=203:T%(I,2)=-1
410 T%(I,3)=X:NEXT
500 PRINT"[147]":FORI=1TO3
510 GOSUB7000:FORJ=1TO6
520 GOSUB7100:PRINT" ":NEXTJ,I
530 GOSUB7000
540 POKE1105,233:POKE1141,223
550 POKE1945,95:POKE1981,105
560 FORI=1TO10:READJ:POKEZ+J,96:NEXT
600 FORI=65TO82:K$=CHR$(I)
610 GOSUB7200:IFP%(A)=5THENNEXT
620 IFRND(1)<.5THENP%(A)=12-P%(A)
630 PRINT"[145]";K$;"[157]";A$(P%(A)):NEXT
640 PRINT" [146][145][164][157]_[165][157][157][163]"
650 B=TI
1000 T=TI
1010 GETK$:IFK$<"A"ORK$>"R"THEN2000
1020 GOSUB7200:P%(A)=12-P%(A)
1030 PRINTA$(P%(A))
2000 D=T%(U,2):P=Z+T%(U,1):K=T%(U,3)
2010 IFK=XTHEN2050
2020 IFK=YORK=170ORK=32THEN6000
2040 D=40/D:IFKAND32THEND=-D
2050 T%(U,2)=D:POKEP,T%(U,3)
2060 IFPEEK(P+D)=96THENT%(U,2)=SGN((UAND1)-.5)*40/D:GOTO2000
2070 POKEP+CM,1:P=P+D:T%(U,3)=PEEK(P):POKEP,Y:POKEP+CM,7
2080 T%(U,1)=T%(U,1)+D
2090 FORI=1TO180/M-7*M:NEXT
2100 U=U+1:IFU>MTHENU=1
2110 IFTI-T=<800*(1+RND(1))THEN1010
2115 IFTI-B>14400THEN6300
2120 IFFTHEN5200
2130 IFRND(1)<VTHENGOSUB5000
2140 M=M-(M<N):GOTO1000
4000 FORI=0TO12:PRINT"[145]";TAB(I)K$
4010 FORJ=1TO110:NEXTJ,I
4020 PRINT:RETURN
4500 GETK$:IFK$<>" "THEN4500
4510 PRINT"[147]";:RETURN
5000 Q=6-5*(RND(1)<.5)+INT(3*RND(1))
5010 K$=CHR$(Q+64):F=1
5020 PRINTZ$;" POINTS AT ";K$;" CLOSING DOWN SOON"
5030 PRINT"ABC"
5040 GOSUB7200:PRINT"[145]";K$:RETURN
5200 PRINTZ$;:IFF=2THEN5400
5210 A=Q:GOSUB7205:PRINTA$(6)
5220 P%(A)=6:F=2:GOTO1000
5400 F=0:A=Q:P%(A)=0
5410 PRINT"POINTS NOW CLEAR"
5420 GOSUB7205:PRINTA$(0):GOTO1000
6000 B=INT((TI-B)/60)
6010 PRINTZ$;"CRAAAASH !!!!!"
6020 S=37:FORI=0TO9:RESTORE:FORJ=1TO9
6030 READC:POKEP+C,S+I:NEXTJ,I
6040 FORI=1TO4000:NEXT
6050 PRINT"[147]YOU SURVIVED FOR";B;"SECONDS"
6060 PRINT"YOUR SCORE IS";INT(100*(B/240)^(1-V));"%"
6070 PRINT"PLAY AGAIN (Y/N)"
6080 GETK$:IFK$="N"THENEND
6090 IFK$<>"Y"THEN6080
6100 RESTORE:GOSUB9500:GOTO160
6300 FORI=0TO2000:NEXT
6310 PRINT"[147]YOU LASTED OVER FOUR MINUTES!!!"
6320 PRINT"DOES THE B. C. RAILWAY KNOW ABOUT YOU ?"
6330 GOTO6070
7000 PRINT"";:FORJ=1TO37
7010 PRINT" ";:NEXT:PRINT:RETURN
7020 S=36:FORI=0TO9:RESTORE:FORJ=1TO9
7030 READC:POKEP+C,S:NEXTJ
7040 S=79-S:NEXTI
7100 PRINT"";:FORK=1TO4
7110 PRINT" [146] ";:NEXT:RETURN
7200 A=ASC(K$)-64
7205 R=INT(A/5):C=9*(A-5*R)
7210 PRINTLEFT$(D$,2+7*R);SPC(C);
7220 RETURN
8000 DATA -41,-40,-39,1,41,40,39,-1,0
8010 DATA 1,1,5,5,5,0,0,0,5
8110 DATA 2,5,0,5,3,5,4,5,4
8200 DATA 1,1,1,5,5,0,5,0,3
8210 DATA 2,0,0,5,5,5,5,4,4
8300 DATA 1,1,1,5,2,0,0,0,3
8310 DATA 2,0,0,0,3,5,4,4,4,0
8400 DATA 50,59,68,200,360,398
8410 DATA 640.678,970,979,988
9000 PRINT"[147]":GOTO9500
9010 K$=" TRAINS":GOSUB4000
9020 K$=" [163][163][163][163][163][163]":GOSUB4000:PRINT
9030 K$=" BY J.AUGHTON":GOSUB4000
9040 PRINT"ALWAYS PRESS THE SPACE BAR WHENEVER YOU"
9050 PRINT" ARE READY TO PROCEED TO THE NEXT PAGE"
9060 GOSUB4500
9310 PRINT"TRY TO CONTROL THE TRAINS AS THEY GO"
9320 PRINT"ROUND THE SYSTEM . EACH OF THE POINTS"
9330 PRINT"IS LABELLED WITH A LETTER A-R.YOU CAN"
9340 PRINT"SWITCH THE POINTS BY PRESSING THE KEY"
9350 PRINT"HAVING THE SAME LETTER.KEEP THEM MOVING"
9360 PRINT"AS LONG AS YOU CAN!!"
9370 PRINT"IN THE EVENT OF ANY ACCIDENTS,THE GAME"
9380 PRINT"STOPS AND YOUR SCORE IS GIVEN"
9390 PRINT"AT IRREGULAR INTERVALS SOME POINTS MAY"
9400 PRINT"CLOSE FOR A WHILE FOR REPAIRS.KEEP AN"
9410 PRINT"EYE ON THE TOP OF THE SCREEN FOR DETAILS"
9420 GOSUB4500
9500 PRINT"CHOOSE DIFFICULTY LEVEL 1,2 OR 3"
9505 PRINT"1=EASY...3=HARD...--YOUR CHOICE";
9510 INPUT"1[157][157][157]";K$:V=ASC(K$)-48
9520 IFV<1ORV>3THEN9505
9530 FORI=1TO9+18*(V-1):READS:NEXT
9540 FORI=1TO18:READP%(I):NEXT
9550 FORI=0TO18*(3-V):READS:NEXT
9560 N=2+2*V:V=V/7:RETURN